Married with Tcl
نویسنده
چکیده
Writing and maintaining a Tcl C extension for several years is an experience which can be compared to a long lasting relationship between a man and a woman. At the beginning, there is great excitement and you enjoy a real good time. However, once the relationship settles, you will find out that being married is sometimes straining and you start to look at things from a slightly different perspective. This paper documents some of the experiences and lessons learned during seven years of writing and maintaining the scotty package. The scotty package contains the Tnm network management extension for Tcl, which is used at many sites world-wide to automate network management tasks or to drive test-suites for network devices. This paper is an experience report and does not introduce new concepts to enhance Tcl or Tnm. However, some of the issues raised in this paper may prevent others from repeating some of the mistakes made by the author. Experience reports like this one may also help others to make realistic estimations about the amount of effort needed to keep an extension alive. 1 Falling in Love with Tcl The whole story began in 1991 when I started to work in the area of network management. It soon became clear to me that the software which was available at that time was lacking flexibility. I always felt that commercial tools were in many cases more complex than needed to solve a given problem. On the other hand, freely available command line tools were often a bit too inefficient for the implementation of customized solutions that perform well in a network of reasonable size. In fact, efficient network management requires to do many things in parallel and thus it is important that APIs support an event-driven programming style. My UNIX system administration background told me that most network management tasks are rather simple. All you need is a relatively small set of customizable scripts to solve at least 80 % of the problems in an operational network. Unfortunately, the tools that were around in the early 90’s were not very efficient and smart so using them in scripts was not performing well. I started to play with the idea to create my own little domain specific language for automating network management tasks. One day, I stumbled across Tcl on one of the first
منابع مشابه
Callus Induction and Shoot Regeneration Using Indole Acetic Acid and N-Isopentenylamino Purine Combinations and Two Types of Explant in Tomato
Effects of different concentrations of IAA (0, 0.3, 0.6 mg/l) and 2ip (0, 0.3, 0.6, 0.9, 1.2 mg/l) and their combinations on callus induction and shoot regeneration of hypocotyl and its thin cell layer (TCL) explants in tomato was studied. Explants were prepared from hypocotyls of seedlings in the aseptic condition. Hypocotyl segments were more efficient than TCL explants for callus induction a...
متن کاملPtTcl: Using Tcl with Pthreads
Tcl is not thread-safe. If two or more threads attempt to use Tcl at the same time, internal data structures can be corrupted and the program can crash. This is true even if the threads are using separate Tcl interpreters. PtTcl is a modi cation to the Tcl core that makes Tcl safe to use with POSIX threads. With PtTcl, each thread can create and use its own Tcl interpreters that will not interf...
متن کاملExtending Tcl for Dynamic Object-Oriented Programming
Object Tcl is an extension to the Tool Command Language (Tcl) for the management of complicated data types and dynamic object-oriented programming in general. We believe it is a worthy alternative to other object-oriented programming extensions (including [incr Tcl]) because it may be used dynamically, allows for per object specialization, has an economy of design and implementation, and provid...
متن کاملInterpreted C++, Object Oriented Tcl, What next?
Tcl[1] is an interpreted high level language suitable for scripts, small scale systems, prototypes and embedding in larger applications. C++ is a powerful compiled language that provides support for object oriented programming and is suitable for building large complex systems. But what if you could move from C++ to Tcl and back again with the ease of an object reference and a dynamically bound...
متن کاملRedesigning Tcl-DP
Tcl-DP is a loadable module for Tcl that adds advanced communication features to Tcl/Tk. Tcl-DP supports communication by serial links, IP-multicast, TCP, UDP, and email, contains a remote procedure call (RPC) mechanism, and supports the design of new protocols using modules called filters. Tcl-DP 1.0 [Smi93] was released four years ago and has since been used for numerous commercial and academ...
متن کامل